package com.ybkj.o2o.sales.mapper;

import com.ybkj.o2o.sales.entity.ActivityRecord;

import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface ActivityRecordMapper {

  /**
   * 保存活动信息到数据库.
   * 
   * @param activityRecord 活动记录内容
   * @return 保存成功返回Id信息
   */
  Long insertRecord(ActivityRecord activityRecord);

  /**
   * 统计活动记录数量.
   * @param activityId 活动id
   * @param passengerId 客户id
   * @param appKey 系统key
   * @return Long
   */
  long countByActivityAndPassenger(@Param("activityId") Long activityId,
      @Param("passengerId") Long passengerId, @Param("appKey") String appKey);

  /**
   * 分页查询活动记录.
   * @param activityId 活动id
   * @param companyId 公司id
   * @param passengerPhone 手机号
   * @param startTime 开始时间
   * @param endTime 结束时间
   * @param offset 页数
   * @param size 每页数量
   * @param appKey 系统key
   * @return List
   */
  List<ActivityRecord> selectByActivity(@Param("activityId") Long activityId,
      @Param("companyId") Long companyId, @Param("passengerPhone") String passengerPhone,
      @Param("startTime") Date startTime, @Param("endTime") Date endTime,
      @Param("offset") Integer offset, @Param("size") Integer size, @Param("appKey") String appKey);

  /**
   * 统计活动记录数量.
   * @param activityId 活动id
   * @param companyId 公司id
   * @param passengerPhone 手机号
   * @param startTime 开始时间
   * @param endTime 结束时间
   * @param appKey 系统key
   * @return Long
   */
  long countByActivity(@Param("activityId") Long activityId, @Param("companyId") Long companyId,
      @Param("passengerPhone") String passengerPhone, @Param("startTime") Date startTime,
      @Param("endTime") Date endTime, @Param("appKey") String appKey);

  /**
   * 查询单个活动记录.
   * @param id 活动记录id
   * @param appKey 系统key 
   * @return ActivityRecord
   */
  ActivityRecord selectByPrimaryKey(@Param("id") Long id, @Param("appKey") String appKey);
}
